Rendering

Use render passes to define the rendering of nodes in your Kanzi application. For example, in a render pass you can define which Camera that render pass uses for rendering, what nodes it renders, and settings for the color and depth buffer use. You can use multiple render passes to apply post-processing effects.

You can select and refine the collection of nodes you sent to a render pass for rendering with filters and object sources. Doing so you can precisely define the order of rendering content in your Kanzi application. See Filters and Using object sources.

Render passes

Each Scene node has the Render Pass property that determines which render pass Kanzi uses for rendering that Scene node. When you create a Scene node, it uses the DefaultRenderPass to render its content.

You can define how you want Kanzi to render the nodes in your application by creating render passes, setting the hierarchy and order of the render passes, and setting different properties in the render passes. Kanzi executes the render passes from top to bottom the way they appear in the Library > Rendering > Render Passes. Each render pass applies its settings and renders its children.

These render passes are available in Kanzi:

Blit Render Pass

Blit Render Pass blits one or more render passes or textures on the screen using a specific material. See Rendering multiple render passes or textures.

Clear Render Pass

Clear Render Pass clears some or all of the buffers of the current render context. You can set the values to which Kanzi clears color, depth, and stencil buffer.

Composition Target Render Pass

Composition Target Render Pass renders itself and its child render passes to a composition target. See Rendering content to a composition target.

Default Render Pass

Default Render Pass creates a basic set of render passes that first render opaque nodes and then transparent nodes. Use the Default Render Pass as a starting point for your render pass tree. See Using the Default Render Pass.

Draw Objects Render Pass

Draw Objects Render Pass allows you to set a Camera node to render a specific object source and to control frustum culling. By default the Draw Objects Render Pass uses the default Camera node to render all nodes in a Scene node. Set all rendering parameters for a Draw Objects Render Pass in its parent Pipeline State Render Pass. See Using object sources, Filters, and Controlling frustum culling.

Draw Objects With Material Render Pass

Draw Objects With Material Render Pass works like a Draw Objects Render Pass but allows you to set a material that it uses to render content. See Setting materials for rendering.

Group Render Pass

Group Render Pass allows you to collect render passes so that you can refer to a single render pass in your Scene or Viewport 2D node.
You do not need a Group Render Pass if your topmost render pass can have all your other render passes as its children.

Material Setup Render Pass

Material Setup Render Pass allows you to set properties for a material so that all successive rendering with that material uses the property values you set in this render pass. See Setting materials for rendering.

Pipeline State Render Pass

Pipeline State Render Pass allows you to set for its child render passes depth and stencil testing, transparency, and culling. This render pass sets the rendering state before passing the control to its descendants. After the descendant render passes of a Pipeline State Render Pass execute, Kanzi restores the rendering state. See Setting the cull mode and Applying a stencil to 3D content.

Render to Texture Pass

Render to Texture Pass creates the render passes and texture you need to render to a texture. See Rendering to texture.

Post-processing effects

Use multiple render passes to apply post-processing effects.

To apply post-processing effects:

  1. Create a material which supports the post-processing effect that you want to apply.
  2. Create the hierarchy of render passes which creates the post-processing effect you want to apply.

For examples of how to apply a post-processing effect, see Tutorial: Create a Gaussian blur effect and Tutorial: Create a bloom effect.

See also

Rendering best practices

Using Kanzi Studio render pass templates

Rendering multiple render passes or textures

Rendering content to a composition target

Setting materials for rendering

Using object sources

Filters

Setting culling

Tutorial: Create a Gaussian blur effect

Tutorial: Apply a stencil to 3D content